package exception;

import java.util.Scanner;

public class ExceptionHandling {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 基本的try-catch
        try {
            System.out.print("请输入第一个数字: ");
            int num1 = Integer.parseInt(scanner.nextLine());

            System.out.print("请输入第二个数字: ");
            int num2 = Integer.parseInt(scanner.nextLine());

            int result = num1 / num2;
            System.out.println("结果: " + num1 + " / " + num2 + " = " + result);
        } catch (ArithmeticException e) {
            // 处理算术异常（如除以0）
            System.out.println("算术错误: 不能除以0");
        } catch (NumberFormatException e) {
            // 处理数字格式异常
            System.out.println("格式错误: 请输入有效的数字");
        } catch (Exception e) {
            // 捕获所有其他异常（不推荐，应具体处理）
            System.out.println("发生未知错误: " + e.getMessage());
        } finally {
            // 无论是否发生异常，都会执行
            System.out.println("计算结束");
            scanner.close();
        }

        // try-with-resources（自动关闭资源）
        try (Scanner autoCloseScanner = new Scanner(System.in)) {
            System.out.print("请输入一个整数: ");
            int number = autoCloseScanner.nextInt();
            System.out.println("你输入的是: " + number);
        } catch (Exception e) {
            System.out.println("输入错误: " + e.getMessage());
        }
        // 无需手动关闭scanner，会自动关闭
    }
}
